package com.unitd.logistics.comm.plugins.mybatis.page;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * mybatis 集成pageHelper分页插件的分页模板
 *
 * @author Hudan
 * @version 1.0
 * @filename PageTemplate.java
 * @copyright www.pactera.com
 * @date 2019-01-24
 */
public class PageTemplate {

	/**
	 * mybatis 集成分页插件,获取分页数据的模板方法
	 *
	 * @param pageNo     当前页数
	 * @param pageSize   分页的每页记录数
	 * @param dataLoader 需要加载的数据加载器
	 * @param <T>        最终实现分页后的分页数据集合对象
	 * @return T
	 */
	public static <T> PageInfo<T> execute(int pageNo, int pageSize, IPageDataLoader<T> dataLoader) {
		PageHelper.startPage(pageNo, pageSize);
		List<T> list = dataLoader.load();
		return new PageInfo<>(list);
	}
}